package pe.com.mowa.siscobsms.datos;
 
import java.io.IOException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import pe.com.mowa.siscobsms.bean.analista;
import pe.com.mowa.siscobsms.bean.tarifa;
import pe.com.mowa.siscobsms.bean.pagoDelDia;
import pe.com.mowa.siscobsms.bean.persona;
import pe.com.mowa.siscobsms.bean.proyecto;

import com.sun.xml.internal.ws.org.objectweb.asm.Type;

public class conTarifa {
	
	public void setPago(tarifa pag) throws IOException, ClassNotFoundException, Exception
	{
			CallableStatement cs;
			Connection cn;	
			cs = null;
			int estado=0;
			
			try { 
				    System.out.print("BEGIN SET PAGO");

					cn = new conexion().get_conection();
					String sentence ="{ ? = call \"siscobsms\".\"setPago\"(?,?,?) }";
					cs = cn.prepareCall(sentence);  
				  
     		        cs.registerOutParameter(1, Type.INT);
			        
     		        cs.setInt(2, pag.getPrestamo().getId());
			        cs.setFloat(3,pag.getMonto());
			        cs.setDate(4,pag.getFecha());
			        
					cs.execute();
					
     				estado = cs.getInt(1);
				
					cs.close();
					cn.close();
				
					System.out.print("OK SET PAGO");
			    }
			catch (SQLException e) {
				System.out.print("ERROR FUE.. "+e.getMessage());
			}
	}

	


	
	
	
	public ArrayList getPagos(int  idprestamo) throws Exception {

		CallableStatement cs;
		Connection cn;
		cs = null;
		cn = null;
		 
		cn =  new conexion().get_conection();
		ResultSet rs = null;
		ArrayList pagos = new ArrayList();
		

		try {
			System.out.print("\n Antes de while pagos 0");
			String sentence ="select * from  \"siscobsms\".\"getPagos\"(?)";
			System.out.print("\n Query es "+sentence);
			cs = cn.prepareCall(sentence);
			
			cs.setInt(1, idprestamo);
			
			cs.execute();
			rs = cs.getResultSet();
			tarifa tarifa;
			System.out.print("\n Antes de while datos personas 1");
			proyecto pres = new proyecto();
			
			while (rs.next()) {
				tarifa = new tarifa(); 
				tarifa.setIdpago(rs.getInt("idpago"));
				tarifa.setCup(rs.getString("cup"));
				tarifa.setMonto(rs.getFloat("monto"));
				tarifa.setFecha(rs.getDate("fecha"));
				
				pres.setId(rs.getInt("idprestamo"));
				
				
				tarifa.setPrestamo(pres);
				
				tarifa.setEstado(rs.getInt("estado"));
				
				
				pagos.add(tarifa); 
				
			}

		} catch (Exception e) {
			
			System.out.print("\n Error fue"+e.getMessage());

		}

		cs.close();
		cn.close();

		return pagos;
	} 
	
	
	
	
	
	
	
	
	
	
	
	
	public ArrayList getPagosDelDia() throws Exception {

		CallableStatement cs;
		Connection cn;
		cs = null;
		cn = null;
		 
		cn =  new conexion().get_conection();
		ResultSet rs = null;
		ArrayList pagosDelDia = new ArrayList();
		

		try {
			System.out.print("\n Antes de while pagos del dia 0");
			String sentence ="select * from  \"siscobsms\".\"getPagosDelDia\"()";
			System.out.print("\n Query es "+sentence);
			cs = cn.prepareCall(sentence);
			cs.execute();
			rs = cs.getResultSet();
			pagoDelDia objpagoDelDia;
			System.out.print("\n Antes de while datos personas del dia 1");
			proyecto pres;
			persona per ;
			analista loc;
			
			while (rs.next()) {
				objpagoDelDia = new pagoDelDia(); 
				// objeto local
				loc = new analista();
				loc.setNombre(rs.getString("nomlocal"));

				// objeto persona
				per = new persona();
				per.setNombre(rs.getString("nomper")); 

				// objeto prestamo
				pres = new proyecto();
				pres.setId(rs.getInt("idprestamo"));
			    pres.setMnentregado(rs.getFloat("mnentregado"));
			    pres.setMntotal(rs.getFloat("total"));
			    pres.setFecha(rs.getDate("fec"));
			    pres.setLocal(loc);
			    pres.setComentario(rs.getString("comentario"));
			    pres.setPerson(per);
			    pres.setLocal(loc);
			    
				
				// obj pagoDelDia				
				objpagoDelDia.setDiasTrans(rs.getInt("dias_trans"));
				objpagoDelDia.setPagoReal(rs.getFloat("pago_real"));
				objpagoDelDia.setPagoEsperado(rs.getFloat("pago_esperado"));
				objpagoDelDia.setPagoDia(rs.getFloat("pago_dia"));
				objpagoDelDia.setPrestamo(pres);
				
				
				pagosDelDia.add(objpagoDelDia); 
				
				
			}

		} catch (Exception e) {
			
			System.out.print("\n Error en pagos del dia fue"+e.getMessage());

		}

		cs.close();
		cn.close();

		return pagosDelDia;
	} 	
	
	
	
	
	
	
	

	
	


}